/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package test.net.sourceforge.pmd.testframework; import net.sourceforge.pmd.Report; import net.sourceforge.pmd.Rule; import net.sourceforge.pmd.RuleContext; import net.sourceforge.pmd.RuleViolation; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Properties; import java.util.Set; public class MockRule implements Rule { private String name; private String description; private String message; private Set violations = new HashSet(); private Properties properties = new Properties(); private String example; private int priority; public String getExample() { return example; } public void setExample(String example) { this.example = example; } public int getPriority() { return this.priority; } public String getPriorityName() { return null; } public void setPriority(int priority) { this.priority = priority; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public boolean hasProperty(String name) { return properties.containsKey(name); } public void addProperty(String name, String value) { properties.setProperty(name, value); } public int getIntProperty(String name) { return Integer.parseInt(properties.getProperty(name)); } public double getDoubleProperty(String name) { return Double.parseDouble(properties.getProperty(name)); } public boolean getBooleanProperty(String name) { return Boolean.valueOf(properties.getProperty(name)).booleanValue(); } public String getStringProperty(String name) { return properties.getProperty(name); } public Properties getProperties() { return properties; } public boolean include() { return true; } public void setInclude(boolean include) { } /** * For use by RuleSetFactory only! */ public MockRule() { } public MockRule(String name, String description, String message) { this.name = name; this.description = description; this.message = message; } public void addViolation(RuleViolation violation) { violations.add(violation); } public void apply(List astCompilationUnits, RuleContext ctx) { Report report = ctx.getReport(); Iterator vs = violations.iterator(); while (vs.hasNext()) { report.addRuleViolation((RuleViolation) vs.next()); } } }